<?php

class FaqService extends Model {

    /**
     * @var FaqDao
     */
    private $faqDao;
    /**
     * @var UsuarioService
     */
    private $usuarioService;

    public function injectDependencies() {
        $this->faqDao = FaqDao::getInstance();
        $this->usuarioService = UsuarioService::getInstance();
    }

    public function findAll() {
        $ArPerguntas = $this->faqDao->findAll();
        $this->fillQuestion($ArPerguntas);
        return $ArPerguntas;
    }

    public function findById($IDFaq) {
        $Pergunta = $this->faqDao->findById($IDFaq);
        $this->fillQuestion($Pergunta);
        return $Pergunta;
    }

    public function save($ArDados) {
        $IDUsuario = Dracosys::getLoggedUser()->getIDUsuario();
        return $this->faqDao->save($IDUsuario, $ArDados);
    }

    public function update($ArDados) {
        $IDUsuario = Dracosys::getLoggedUser()->getIDUsuario();
        return $this->faqDao->update($IDUsuario, $ArDados);
    }

    public function delete($IDFaq) {
        return $this->faqDao->delete($IDFaq);
    }

    private function fillQuestion(&$MxQuestion) {
        if (!empty($MxQuestion)) {
            $this->fillQuestionWithUser($MxQuestion);
        }
    }

    private function fillQuestionWithUser(&$MxQuestion) {
        if (!is_array($MxQuestion)) {
            $MxQuestion->setUsuario($this->usuarioService->findSimpleUserById($MxQuestion->getIDUsuario()));
            return;
        }
        foreach ($MxQuestion as &$Question) {
            $Question->setUsuario($this->usuarioService->findSimpleUserById($Question->getIDUsuario()));
        }
    }


}

?>
